查看原文
其他

ISSCC2017 Deep-Learning Processors文章学习 (七)

2017-02-20 T.S. StarryHeavensAbove

第七篇

“A 0.62mW Ultra-Low-Power Convolutional-Neural-Network Face-Recognition Processor and a CIS Integrated with Always-On Haar-Like Face Detector”


Kyeongryeol Bong, Sungpill Choi, Changhyeon Kim, Sanghoon Kang, Youchang Kim, Hoi-Jun Yoo

KAIST, Daejeon, Korea


本文的工作是专门针对人脸识别的专用处理器,和MIT设计的专门用于语音识别的处理器类似,它也充分发掘了应用的特点,以实现超低功耗的目标。


首先,在“智能边缘计算里的Always-on”那篇文章中,我曾简单介绍了这篇文章对应用场景的设定。

通过在always-on的CIS(CMOS image sensor)上添加人脸识别的功能,在可穿戴的设备上实现新的用户接口。对于这种应用,本文的工作是开发了一个“ life-cycle analyzer”或者说“personal black box”,持续的记录我们遇到的人,并记录时间和地点信息。另外,具有always-on能力的FR还可以被用于用户鉴权,保证其对智能手机或者个人设备的安全访问。由于可穿戴设备的电池容量限制和尺寸限制,需要在实现很高的识别准确度的同时,消耗尽可能少的能量。之前的工作中,特征值识别的方法准确性较低,而CNN实现方法要消耗太多能量,很难应用在可穿戴的设备当中。

这里比较了本文的方法在实现人脸检测上的差别。和传统方法不同,本文工作实现了一个超低功耗的CNN FR processor和一个集成了always-on Haar-like face detector的CIS。具体的贡献如下,主要是4个点:

在细看这几个贡献点之前,还是先看看整体的架构:

这个设计包括了两个芯片:一个face image sensor (FIS)和CNN处理器。首先,FIS持续进行Haar-like人脸检测。一旦发现人脸,就把人脸图像(只包括人脸)传给CNNP,完成人脸识别。FIS集成了一个320x240像素阵列的CIS,模拟的Haar-like滤波电路(AHFC)和一个数字Haar-like滤波单元(DHFU)。CNNP有4×4的处理单元和本地分布式T-SRAM组成。4×4 PE用一个mesh网络,在边缘的PE和外部接口连接。


1. 低功耗的人脸检测

简单来说是一个模拟数字混合的架构。


这是一个模拟(AHFC)和数字(DHFU)混合的Haar-like人脸检测器 ,包括了多个级联的分类阶段。在每个阶段,Haar-like滤波器比较一个黑色像素区域和一个白色像素区域的intensity summation(具体的Haar-like检测方法大家自己学习吧)。这里的重点是通过AHFC只是用在第一级,直接输出Pass或Fail的结果,可以最大程度的降低静态电流的消耗。因此DHFU可以避免60%的初始处理。


2. CNN处理器的设计

文中的CNN处理器称作DM-CNNP。每个PE每周期从本地的T-SRAM(transpose-read SRAM)中读取32个word,供给4个卷积处理单元。每个单元有一个64 MAC的阵列。因此,一共有4x4个PE的CNNP每个周期一共从memory读取512个words。由于这些本地分布式memory有很宽的I/O,每个周期可以同时完成1,024个MAC运算。这么大的memory带宽和大规模并行的MAC处理,可以实现在很低的工作频率(5MHz)和near threshold voltage (NTV), 0.46mV。 在完成一次卷积操作之后,MAC输入寄存器每个周期对数据进行一列的移位,在累加寄存器中完成对部分和的累加操作。在同一行上的PE可以相互传递数据,减少由于PE间数据通信带来的开销。同时,MAC单元可以通过mask比特进行clocking gating来减少功耗(这个基本是标配了)。


3. SF-CONV

“separable filter approximation” 把一个d x d滤波器的卷积转换成两级卷积:d x 1垂直方向滤波器和d x 1水平方向滤波器,而错误率<1%(参见[5])。 而SF-CONV方法消耗的MAC操作和处理的周期数分别可以降低74.7%和77.1%(对于一个给定的测试例). 


4. Transpose-Read SRAM (T-SRAM)

在上述SF-CONV的方法中,如果使用普通的memory,无法一次读出一个垂直方向的特征数据。为了提供访问的效率,本文提出了T-SRAM的概念。T-SRAM包括了两种读取模式:row-access read和column-access read(一次读取一列数据)。


结合SF-CONV和T-SRAM就得到比较好的效果:


文章也给出了T-SRAM的电路,感兴趣的同学可以好好研究。

“In a T-SRAM cell, a decoupling MOSMOS for read is added to a conventional 6T cell, and its source and drain nodes are connected to the word line, H_RDWL, and the bitline, H_RDBL, respectively, during the row-access data read. For the column-access data read, the two lines interchange their roles: H_RDWL works as V_RDBL, and H_RDBL works as V_RDWL. Both row and column paths have separate word line drivers and sense amplifiers, and for the 16b words/cycle access through column path, each bit of a 16b word is placed in different banks. With the help of the column-access data read, the activity factor for the input image readout in SF-CONV can be reduced by 76.2% in the test case.”


最后,结果部分比较有意思的是这个。


References:

[1] D. Jeon, et al., "A 23mW Face Recognition Accelerator in 40nm CMOS with Mostly-Read 5T Memory," IEEE Symp. VLSI Circuits, 2015.

[2] Y. Chen, et al., "Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks," ISSCC, pp. 262-263, 2016.

[3] B. Moons, et al., "A 0.3-2.6 TOPS/W Precision-Scalable Processor for Real-Time Large-Scale ConvNets," IEEE Symp. VLSI Circuits, 2016.

[4] P. Viola, et al., "Rapid Object Detection Using a Boosted Cascade of imple Features," Computer Vision and Pattern Recognition, 2001.

[5] M. Jaderberg, et al., "Speeding Up Convolutional Neural Networks with Low Rank Expansions," arXiv:1405.3866 [cs.CV], 2014.

[6] G. B. Huang, et al., “Labeled Faces in the Wild: A Database for Studying Face Recognition in Unconstrained Environments,” University of Massachusetts, Amherst, Technical Report 07-49, 2007.


延 伸 思 考

本文工作和MIT的语音识别处理器的设计思路有相似之处:1. 明确分开检测和识别:采用FIS和CNNP两个芯片。2. 降低检测部分的功耗:模拟数字混合的Haar滤波器。3. 识别部分对神经网络的简化,SF-CONV+T-SRAM。为了实现功耗目标,基本上在应用,算法和架构层面都做了工作,有很高的参考价值。

T.S.

封面素材来自网络,版权归所有者所有

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存